Enterprise software applications or computer programs are deployed or installed on a variety of computer systems. The computer systems may be provided by different manufacturers and may have been installed within the enterprise at different dates. The applications may share portions of the computer systems, for example, two or more applications may share one or more interfaces. Applications evolve over time and are deployed, installed, or fielded in different versions. In a large enterprise, a variety of different applications providing similar functionality may be deployed and in service. Different applications may be more or less vital to continuing enterprise activities, which may be captured in different criticality levels.
Developing and maintaining software and computer systems is a complex and challenging activity. It may be desirable to provide processes for developing and maintaining software and computer systems to promote repeatable, consistent, and successful project efforts. The Software Engineering Institute (SEI) has promulgated a capability maturity model which attempts to define and classify an organization's ability to develop and maintain software systems. Higher levels of capability in this model are associated with substantially optimized and consistently deployed operational processes.